import { Route, Redirect } from 'react-router-dom'
import { isAuth } from '@/utils'
import { message } from 'antd'

// 希望可以当作Route一样使用
function AuthRoute(props) {
  // 解构+起别名
  // 左边对应到 解构的属性名
  // 右边对应到别名
  // ...otherProps 把其他的属性都合并到这个对象中
  // {...otherProps} 把外部传入的 除component属性以外的所有属性
  // 直接合并到Route这个组件上
  const { component: Component, redPath, ...otherProps } = props
  return (
    <Route
      {...otherProps}
      render={() => {
        // 判断是否已经登录
        if (isAuth()) {
          // 已登录 去首页
          return <Component />
        } else {
          // 请先登录
          message.warning('请先登录')
          // 未登录 去登录页
          return <Redirect to='/login'></Redirect>
        }
      }}
    ></Route>
  )
}

export default AuthRoute
